/*
 * Copyright 2006-2023 ahtelit.com, All Rights Reserved.
 */

package com.telit.firecommand.model.iot;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;


/**
 * IOT设备列表model
 *
 * @author yuezhuang
 * @since 2023-04-27
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "IotDeviceListModel", description = "IOT设备列表model")
public class IotDeviceListModel implements Serializable {

    private static final long serialVersionUID = -1L;


    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @ApiModel(value = "Deployment", description = "Deployment")
    public static class Deployment implements Serializable {

        private static final long serialVersionUID = -1L;

        @ApiModelProperty(value = "名称")
        private String name;

        @ApiModelProperty(value = "经纬度")
        private List<BigDecimal> lnglat;

        @ApiModelProperty(value = "地址")
        private String location;

    }


    @ApiModelProperty(value = "ID")
    private String id;

    @ApiModelProperty(value = "设备SN")
    private String sn;

    @ApiModelProperty(value = "名称")
    private String name;

    @ApiModelProperty(value = "设备小类")
    private String deviceType;

    @ApiModelProperty(value = "设备型号")
    private String model;

    @ApiModelProperty(value = "设备大类")
    private String category;

    @ApiModelProperty(value = "设备大类名称")
    private String categoryName;

    @ApiModelProperty(value = "网络状态")
    private boolean networkStatus;

    @ApiModelProperty(value = "设备状态， 枚举值\n"
            + "● NORMAL: 正常\n"
            + "● ALARM: 报警\n"
            + "● DANGER: 隐患\n"
            + "● FAULT: 故障\n"
            + "● ISOLATION: 故障隔离\n"
            + "● DISCONNECT: 失联")
    private String status;

    @ApiModelProperty(value = "创建时间")
    private String createdTime;

    @ApiModelProperty(value = "部署时间")
    private String deployedTime;

    @ApiModelProperty(value = "deployment")
    private Deployment deployment;

    @ApiModelProperty(value = "图片")
    private String mainPicture;

    @ApiModelProperty(value = "设备型号")
    private String skuName;

}
